package com.oceansoft.mobile.econsole.modules.apps.service;


import com.oceansoft.mobile.econsole.modules.apps.entity.AppDownload;
import com.oceansoft.mobile.econsole.modules.apps.entity.AppInfo;
import com.oceansoft.mobile.econsole.modules.apps.entity.AppInfoV2;
import com.oceansoft.mobile.econsole.modules.apps.entity.AppVersion;
import com.oceansoft.mobile.econsole.modules.apps.entity.Message;
import com.oceansoft.mobile.econsole.modules.base.entity.Pager;
import com.oceansoft.mobile.econsole.modules.base.entity.Query;
import com.oceansoft.mobile.econsole.modules.base.entity.Result;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 *
 * @author: Administrator
 * @time: 2014/4/29 0029 下午 22:26
 */
public interface IAppInfoService {
    /**
     * 分页查询
     *
     * @param query 查询条件
     * @return 分页数据
     */
    public Pager findByPage(Query query);

    public AppInfo findAppInfoById(int appId);

    /**
     * 根据ID加载应用基本信息
     *
     * @param appId 应用ID
     * @return AppInfo 基本信息
     */
    public AppInfo findAppBaseInfoById(int appId);

    List<AppInfo> findPageForApp(int pageSize, int pageIndex, String hostIP);
    
    List<AppInfoV2> findPageForAppV2(int pageSize, int pageIndex, String hostIP);
    

    /**
     * 加载菜单图文消息
     *
     * @param menuId 菜单编号
     * @return 图文消息
     */
    Message findMessageByMenuId(int menuId);

    Result deleteAppById(int appId);

    Result save(AppInfo appInfo, String hostIP);

    Result save(AppVersion appVersion);
    void insertAppDownload(AppDownload appdownload);

    Result update(AppInfo appInfo, String hostIP);

    /**
     * 加载主程序版本信息(版本更新检查)
     *
     * @return Result
     */
    Result loadAppVersionInfo();

    /**
     * 加载默认插件列表
     *
     * @return Result
     */
    Result findDefaultAppPlugins();
}
